//
//  RCSystemTools.h
//  StructToolsDemo
//
//  Created by 杨晓辉 on 2017/9/18.
//  Copyright © 2017年 杨晓辉. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface RCSystemTools : NSObject
#pragma mark ---ScreenInfo--
/**
 屏幕宽度
 
 @return 屏幕宽度
 */
+ (CGFloat)getDeviceScreenWidth;
/**
 屏幕高度
 
 @return 屏幕高度
 */
+ (CGFloat)getDeviceScreenHeight;

/**
 *  得到屏幕亮度
 *
 *  @return 0-1
 */
+ (CGFloat)getScreenBrightness;

/**
 *  屏幕分辨率
 *
 *  @return 0x0
 */
+ (NSString *)getScreenResolution;
/**
 得到当前屏幕dpi
 
 @return return value description
 */
+ (CGFloat )getScreenDpi;

#pragma mark ---ProjectInfo--

/**
 得到当前项目版本
 
 @return 当前项目版本
 */
+ (NSString *)getProjectVersion;
/**
 得到当前项目名称
 
 @return 当前名称
 */

+ (NSString *)getProjectName;

/**
 得到当前项目构建版本号
 
 @return  当前项目构建版本
 */
+ (NSString *)getProjectBuildVersion;

#pragma mark ---Hardware info--
/**
 获取设备版本号
 
 @return  设备版本   e.g  -  iPhone 6s Plus/iPhone 5s (GSM+CDMA)
 */
+ (NSString *)getDeviceName;
/**
 得到当前的手机名称，关于本机里面的名称
 
 @return iPhone名称
 */
+ (NSString *)getiPhoneName;

/**
 当前系统名称
 
 @return 当前系统名称 e.g iOS
 */
+ (NSString *)getSystemName;

/**
 得到当前设备类型 ：iPhone / iPad
 @return iPhone / iPad
 */
+ (NSString *)getDeviceType;
/**
 当前系统版本号
 
 @return 版本.例如：9.3.4,以及最新的10
 */
+ (NSString *)getSystemVersion;

/**
 *  得到硬件类型
 *
 *  @return 硬件类型,iPhone8,1,iPhone5.1等等
 */
+ (NSString *)getHardWardType;

/**
 *  得到构建描述
 *
 *  @return 得到内核描述信息
 */
+ (NSString *)getDarwinBuildDescription;

/**
 通用唯一识别码UUID
 
 @return 唯一识别码UUID
 */
+ (NSString *)getUUID;

#pragma mark ---NetWorkInfo--
/**
 获取当前设备公网IP
 
 @return 公网IP
 */
+ (NSString *)getWANIPAdress;

/**
 获取内网IP
 
 @return 内网IP
 */
+ (NSString *)getLANIPAdress;

/**
 判断当前网络是否是Ipv6
 
 @return BOOL
 */
+ (BOOL)isIpv6;

/**
 得到当前wifi列表
 
 @return  wifi列表,经测试，这里只是返回了当前连接wifi的信息
 */
+ (NSMutableArray *)getWifiListArr;
#pragma mark ---Storage--
/**
 获取总内存大小
 
 @return  总内存大小
 */
+ (long long)getTotalMemorySize;
/**
 获取当前可用内存
 
 @return 当前可用内存
 */
+ (long long)getAvailableMemorySize;

/**
 获取总磁盘容量
 @return 总磁盘容量
 */
+ (long long)getTotalDiskSize;
/**
 获取可用磁盘容量
 
 @return 可用磁盘容量
 */
+ (long long)getAvailableDiskSize;


#pragma mark ---BatteryInfo --
/**
 获取电池电量
 
 @return  电池电量
 */
+ (NSString*)getBatteryLevel;

/**
 获取电池当前的状态
 
 @return 电池当前的状态，共有4种状态
 */
+ (NSString *)getBatteryState;

/**
 *  电池是否允许监控
 *
 *  @return YES表示能够监控，NO表示不能够监控
 */
+ (BOOL)isAllowMonitorBattery;
/**
 获取当前语言
 
 @return 当前语言
 */
+ (NSString *)getDeviceLanguage;
/**
 根据文件大小转换为数据单位
 @param fileSize 文件大小
 @return 数据单位
 */
+ (NSString *)fileSizeToString:(unsigned long long)fileSize;

#pragma mark --- 是否越狱 --
#pragma mark ---OperatorInfo 运营商信息--
/**
 运营商名称
 
 @return 运营商名称
 */
+ (NSString *)getCurrentPhoneOperatorName;
/**
 得到当前手机号的国家代码,如果没有则为nil
 
 @return 返回国家代码
 */
+ (NSString *)getCurrentISOCountryCode;

/**
 得到移动国家码
 
 @return 返回移动国家码
 */
+ (NSString *)getMobileCountryCode;


@end
